2023/12/231203字符
接口
package main
import "fmt"
func main() {
mouse := Mouse{ "MMM" }
fmt.Println(mouse.name) //--> MMM
fmt.Println(Mouse{ "NNN" }) //--> {NNN}
testInterface(mouse) //--> MMM start MMM end
}
type USB interface {
start()
end()
}
type Mouse struct {
name string
}
func (m Mouse)start() {
fmt.Println(m.name, "start")
}
func (m Mouse)end() {
fmt.Println(m.name, "end")
}
func (m Mouse)clear() {
fmt.Println("clear")
}
// 测试方法
func testInterface(usb USB) {
usb.start()
usb.end()
}
空接口
package main
import "fmt"
func main() {
log(111) //--> 111
obj := make(map[string]interface{})
obj["name"] = "bozai"
obj["age"] = 18
log(obj) //--> map[age:18 name:bozai]
}
func log(o ...interface{}) {
fmt.Println(o...)
}
接口继承
package main
import "fmt"
func main() {
var obj Obj = Obj{}
obj.test1() //--> test1
obj.test2() //--> test2
var car Car = obj
car.test1() //--> test1 car 只能调用他自己的方法
}
type Car interface {
test1()
}
type Bwm interface {
Car
test2()
}
type Obj struct {}
func (o Obj) test1() {
fmt.Println("test1")
}
func (o Obj) test2() {
fmt.Println("test2")
}